#ifndef __MATCHWND_H__
#define __MATCHWND_H__

#include "ui/winview.h"
#include "ui/image.h"
#include "ui/text.h"
#include "uicontrol/button.h"
#include "sift/sift.h"

namespace MiniUI
{

class MatchWnd
{
    typedef MatchWnd this_class;
public:
    MatchWnd();
    ~MatchWnd();
private:
    void OnBtnCloseClick(const UIObject* sender, const Type::MiniPoint& pt, MouseButton button, uint keyState);
    void OnBtnStartComputeClick(const UIObject* sender, const Type::MiniPoint& pt, MouseButton button, uint keyState);
    void OnBtnShowKeypointsClick(const UIObject* sender, const Type::MiniPoint& pt, MouseButton button, uint keyState);
    void OnBtnShowFeaturesClick(const UIObject* sender, const Type::MiniPoint& pt, MouseButton button, uint keyState);
    void OnBtnShowMatchClick(const UIObject* sender, const Type::MiniPoint& pt, MouseButton button, uint keyState);

private:
    void DrawCross(Graphics& graphics, int width, int height, int x, int y);
    void DrawArrow(Graphics& graphics, int x, int y, double ori, double len);

private:
    WinView* m_pWinView;
    Image* m_pImg1;
    Image* m_pImg2;
    Image* m_pImgMask;
    SIFT m_sift1;
    SIFT m_sift2;
};

}

#endif